#ifndef VARIABLE_HH_
# define VARIABLE_HH_

#include <string>

#include "bound.hh"

class variable
{
public:
  enum type {Binary, Integer, Real};

  variable(const std::string& name_,
	   type t_,
	   const bound& bnd);

  bool operator!=(const variable& v) const;
  bool operator==(const variable& v) const;
  bool operator==(const std::string& v) const;

  std::string get_name() const;

  bound get_bound () const;

  friend std::ostream& operator<< (std::ostream&, const variable& w);

protected:
  std::string name;
  type t;
  bound bound_;
};

#endif /* !VARIABLE_HH_ */
